package com.mojian.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mojian.entity.SysResource;
import com.mojian.vo.resource.ResourceDownloadVo;
import com.mojian.vo.resource.SysResourceVo;

/**
 * @author: quequnlong
 * @date: 2025/3/12
 * @description:
 */
public interface ResourceService {

    /**
     * 获取资源列表
     */
    Page<SysResourceVo> getResourceList(SysResource sysResource);

    /**
     * 添加资源
     */
    void add(SysResource sysResource);

    /**
     * 验证资源下载码
     */
    SysResource verify(String code, Long id);
    
    /**
     * 获取资源详情
     */
    SysResourceVo getResourceDetail(Long id);
    
    /**
     * 检查用户是否有权限下载资源
     */
    boolean checkDownloadPermission(Long resourceId);
    
    /**
     * 使用积分兑换资源下载权限
     */
    boolean exchangeResource(Long resourceId);
    
    /**
     * 获取资源下载链接
     */
    String getDownloadUrl(Long resourceId);
    
    /**
     * 获取我上传的资源
     */
    Page<SysResourceVo> getMyResources(Integer pageNum, Integer pageSize, String name);
    
    /**
     * 获取我下载的资源
     */
    Page<ResourceDownloadVo> getMyDownloads(Integer pageNum, Integer pageSize);
    
    /**
     * 删除资源
     */
    boolean deleteResource(Long resourceId);
}
